<?php
/**
 * Controller de Permisos.
 *
 *
 * @filesource          
 * @copyright		
 * @link		http://www.pragmatia.com Pragmatia
 * @package		datagro
 * @subpackage	app.controllers
 * @version     1.1
 * @license		http://www.opensource.org/licenses/mit-license.php The MIT License
 * @author      Martin Radosta <mradosta@pragmatia.com>
 */


/**
 * Clase PermisosController
 *
 * @package	    datagro
 * @subpackage	app.controllers
 */

class PermisosController extends AppController
{
    var $name = 'Permisos';
	var $uses = array('Grupo', 'Controlador', 'Menu');

	function index() 
	{ 
		$this->__seteos();
	}



	function permitirControlador($grupo="", $controlador="") 
	{ 
		/*
		$this->Grupo->save(array( 
			'Grupo' => array( 
				'id' => 1, 
			), 
			'Controlador' => array( 
				'Controlador' => array(3), 
			), 
		)); 
		die;
		*/
		//una celda
		if(is_numeric($grupo) && !empty($grupo) && is_numeric($controlador) && !empty($controlador))
		{
			$this->Grupo->habtmAdd('Controlador', $grupo, $controlador);
		}
		elseif($grupo == "N" && is_numeric($controlador) && !empty($controlador))
		{
			$this->Controlador->habtmAdd('Grupo', $controlador, $this->Grupo->findIds());
		}
		elseif($controlador == "N" && is_numeric($grupo) && !empty($grupo))
		{
			$this->Grupo->habtmAdd('Controlador', $grupo, $this->Controlador->findIds());
		}

		$this->__seteos();
		$this->render("index", "ajax");
	}

	function permitirMenu($grupo="", $menu="") 
	{ 
		//una celda
		if(is_numeric($grupo) && !empty($grupo) && is_numeric($menu) && !empty($menu))
		{
			$this->Grupo->habtmAdd('Menu', $grupo, $menu);
		}
		elseif($grupo == "N" && is_numeric($menu) && !empty($menu))
		{
			$this->Menu->habtmAdd('Grupo', $menu, $this->Grupo->findIds());
		}
		elseif($menu == "N" && is_numeric($grupo) && !empty($grupo))
		{
			$this->Grupo->habtmAdd('Menu', $grupo, $this->Menu->findIds());
		}

		$this->__seteos();
		$this->render("index", "ajax");
	}

	function denegarControlador($grupo="", $controlador="") 
	{ 
		//una celda
		if(is_numeric($grupo) && !empty($grupo) && is_numeric($controlador) && !empty($controlador))
		{
			$this->Grupo->habtmDelete('Controlador', $grupo, $controlador);
		}
		elseif($grupo == "N" && is_numeric($controlador) && !empty($controlador))
		{
			$this->Controlador->habtmDelete('Grupo', $controlador, $this->Grupo->findIds());
		}
		elseif($controlador == "N" && is_numeric($grupo) && !empty($grupo))
		{
			$this->Grupo->habtmDelete('Controlador', $grupo, $this->Controlador->findIds());
		}
		
		$this->__seteos();
		$this->render("index", "ajax");
	}


	function denegarMenu($grupo="", $menu="") 
	{ 
		//una celda
		if(is_numeric($grupo) && !empty($grupo) && is_numeric($menu) && !empty($menu))
		{
			$this->Grupo->habtmDelete('Menu', $grupo, $menu);
		}
		elseif($grupo == "N" && is_numeric($menu) && !empty($menu))
		{
			$this->Menu->habtmDelete('Grupo', $menu, $this->Grupo->findIds());
		}
		elseif($menu == "N" && is_numeric($grupo) && !empty($grupo))
		{
			$this->Grupo->habtmDelete('Menu', $grupo, $this->Menu->findIds());
		}
		
		$this->__seteos();
		$this->render("index", "ajax");
	}

	function __seteos() 
	{ 
		$Grupo =& new Grupo(); //lo hago asi para que se reinicialize le objeto
		$this->set('controladores', $this->Controlador->findAll());
		$this->set('menus', $this->Menu->findAll());
		$this->set('grupos', $Grupo->findAll());
	}

}
?>